Graph representation and description of configuration parameters for media processing function in network-based media processing (nbmp)

ABSTRACT

A method of network-based media processing (NBMP) can include receiving a function description of a media processing function from a function repository at a workflow manager in an NBMP system. The function description can include a configuration descriptor providing configuration information of parameters for the media processing function. The parameters can have logical relationships represented by a parameter representation graph constructed according to a set of rules. The media processing function can be instantiated as a media processing task that is part of a workflow. The media processing task can be configured based on the configuration information of the parameters in the configuration descriptor.

INCORPORATION BY REFERENCE

This application is a continuation of U.S. application Ser. No.17/095,339, filed Nov. 11, 2020, which claims the benefit of priority toU.S. Provisional Application No. 62/958,997, “EFFICIENT GENERICPARAMETER GRAPH FOR FUNCTIONS” filed on Jan. 9, 2020, each of which areincorporated by reference herein in its entirety.

TECHNICAL FIELD

The present disclosure relates to graph representation and descriptionof configuration parameters of a media processing function. Someembodiments are related with network-based media processing (NBMP).

BACKGROUND

The background description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Work of thepresently named inventors, to the extent the work is described in thisbackground section, as well as aspects of the description that may nototherwise qualify as prior art at the time of filing, are neitherexpressly nor impliedly admitted as prior art against the presentdisclosure.

Multimedia service providers face the challenge of adapting theirservices to multiple cloud and network service providers to reach theircustomers. These cloud and network service providers often times definetheir own application programming interfaces (APIs) to assign computeresources to their customers. The Network-based Media Processing (NBMP)standard is being developed to address fragmentation and offer a unifiedway to perform media processing on top of any cloud platform and on anyIP network. NBMP defines a Workflow Manager that can use implementationsof ready-made media processing functions and compose them together tocreate a media processing workflow.

SUMMARY

Aspects of the disclosure provide a method of network-based mediaprocessing (NBMP). The method can include receiving a functiondescription of a media processing function from a function repository ata workflow manager in an NBMP system. The function description caninclude a configuration descriptor providing configuration informationof parameters for the media processing function. The parameters can havelogical relationships represented by a parameter representation graphconstructed according to a set of rules. The rules can include:

-   -   (a) the parameter representation graph includes nodes and edges        each connecting two nodes and representing a logical        relationship between two respective nodes, the nodes including        parameter nodes and value nodes.    -   (b) any two nodes are connected to each other with at most one        edge,    -   (c) a parameter is represented by a parameter node in the        parameter representation graph,    -   (d) if presence or absence of a parameter's value is required as        a condition for setting another parameter, the parameter's value        is represented by a value node in the parameter representation        graph,    -   (e) a parameter node is connected from no other node, or one or        more value nodes, and    -   (f) one edge is connected to any value node and from a single        parameter node.        The media processing function can be instantiated as a media        processing task that is part of a workflow. The media processing        task can be configured based on the configuration information of        the parameters in the configuration descriptor.

In an embodiment, the parameter representation graph corresponding tothe configuration descriptor complies with the rules that furtherinclude:

-   -   (g) the edges in the parameter representation graph are        categorized into three types defined as follows:        -   (i) P2V: a first connection from a parameter node to a value            node indicating that the parameter of the parameter node            connected to the first connection takes a subset or a range            of allowed values represented by the value node connected to            the first connection,        -   (ii) V2P: a second connection from a value node to a            parameter node indicating a dependency of the parameter            represented by the parameter node connected to the second            connection to a parent parameter taking a value represented            by the value node connected to the second connection, and        -   (iii) V0P: a third connection from a value node to a            parameter node indicating that the parameter represented by            the parameter node connected to the third connection is not            allowed if a parent parameter is set to a value represented            by the value node connected to the third connection; and    -   (h) any edge connected to a parameter node is of the type of V2P        or V0P.

In an embodiment, each of the parameters has a data type indicated inthe function descriptor. In an embodiment, each of the parameters has avalue that is a set of values or a range of values. In an embodiment,the edges of one of the parameter nodes in the parameter representationgraph are indicated by two separate lists in the function descriptor.The two separate lists correspond to the V2P type and the V0P type,respectively.

In an embodiment, identifiers (IDs) of the value nodes connected to therespective edges indicated by the two separate lists in the functiondescriptor are included in the two separate lists in the functiondescriptor to indicate the respective edges of the one of the parameternodes. In an embodiment, one of the parameter nodes and one of the valuenodes in the parameter representation graph each use a list of parentnode IDs to indicate the edges connected to the one of the parameternodes and the one of the value nodes. In an embodiment, a set of valuesof one of the value nodes in the parameter representation graph isdefined using a start value, an end value and an increment value in thefunction descriptor.

Aspects of the disclosure provide an apparatus of NBMP. The apparatuscan include circuitry configured to receive a function description of amedia processing function from a function repository at a workflowmanager in an NBMP system. The function description can include aconfiguration descriptor providing configuration information ofparameters for the media processing function. The parameters can havelogical relationships represented by a parameter representation graphconstructed according to a set of rules. The rules can include:

-   -   (a) the parameter representation graph includes nodes and edges        each connecting two nodes and representing a logical        relationship between two respective nodes, the nodes including        parameter nodes and value nodes,    -   (b) any two nodes are connected to each other with at most one        edge,    -   (c) a parameter is represented by a parameter node in the        parameter representation graph,    -   (d) if presence or absence of a parameter's value is required as        a condition for setting another parameter, the parameter's value        is represented by a value node in the parameter representation        graph,    -   (e) a parameter node is connected from no other node, or one or        more value nodes, and    -   (f) one edge is connected to any value node and from a single        parameter node.        The media processing function can be instantiated as a media        processing task that is part of a workflow. The media processing        task can be configured based on the configuration information of        the parameters in the configuration descriptor.

Aspects of the disclosure further provide a non-transitorycomputer-readable medium storing instructions that, when executed by aprocessor, cause the processor to perform the method of NBMP.

BRIEF DESCRIPTION OF THE DRAWINGS

Further features, the nature, and various advantages of the disclosedsubject matter will be more apparent from the following detaileddescription and the accompanying drawings in which:

FIG. 1 shows an exemplary data processing system according to anembodiment of the disclosure.

FIG. 2 shows an example of a workflow according to an embodiment of thedisclosure.

FIG. 3 shows an example parameter representation graph according to anembodiment of the disclosure.

FIG. 4 shows an example network-based media processing (NBMP) processaccording to an embodiment of the disclosure.

FIG. 5 shows a schematic illustration of a computer system according toan embodiment of the disclosure.

DETAILED DESCRIPTION OF EMBODIMENTS

I. Network-Based Media Processing

A network-based media processing (NBMP) framework can be employed toinitialize and control media processing in a network (e.g., on a cloudplatform). For example, an NBMP source describes requested mediaprocessing and provides information about the nature and format of mediadata. In response, an NBMP workflow manager can establish a mediaprocessing workflow and inform the NBMP source that the workflow isready, and the requested media processing can start. The media source(s)can then start transmitting media to the network for processing.

An NBMP workflow can be understood as a connected graph of mediaprocessing tasks, each of which performs a well-defined media processingoperation. The workflow manager ensures correct operation of theworkflow by configuring and monitoring each task as well as a workflowoutput. The workflow manager is responsible for selection of mediaprocessing functions and instantiating the selected functions as tasksbased on a workflow description that is received from the NBMP source.

While hiding interactions with underlying cloud computing platform frommedia service providers, the workflow manager can establish, load, andmonitor media processing entities (MPEs) that run the media processingtasks.

FIG. 1 shows an exemplary NBMP system (100) according to an embodimentof the disclosure. The NBMP system (100) can support existing mediadelivery methods such as streaming, file delivery, push-basedprogressive download, hybrid delivery, multipath, and heterogeneousnetwork environments. The NBMP system (100) can also enable emergingmedia applications by providing various cloud-based media processingcapabilities such as network-assisted media quality enhancement (e.g.,virtual reality (VR) stitching, video up-scaling, mobile edge encodingfor adaptive streaming, and content-aware cloud transcoding),network-assisted media distribution (e.g., live media ingestion, onlinetranscoding, and media-aware caching), network-assisted mediacomposition (e.g., augmented video streaming, and customized mediacomposition), immersive media handling (e.g., network aggregated pointcloud media), and the like.

As shown, the NBMP system (100) can include an NBMP source (101), anNBMP workflow manager (103), a function repository (105), a media source(111), a data processing entity (MPE) (113), and a media sink (115). TheNBMP system (100) can include additional media source(s), media sink(s),and/or MPEs.

The NBMP source (101) can describe, or otherwise indicate, mediaprocessing operations to be performed by the media processing entity(113). The function repository (105) can store various media processingfunctions. The NBMP source (101) and the NBMP workflow manager (103) canretrieve media processing functions from the function repository (105).A media processing function or a function can be used for performing aspecific media processing process, such as a stitching process in a 360video streaming service, an artificial intelligence (AI) based videoup-scaling process in a video delivery service, or the like.

A media processing task or a task can be a runtime instance of afunction that is executed by the MPE (113). An NBMP workflow or aworkflow can be represented by a graph (e.g., a directed acyclic graph(DAG)) of one or more connected task(s) that achieve the requested mediaprocessing. The NBMP workflow manager (103) or the workflow manager(103) can provision task(s) and connect the task(s) to create, control,manage and monitor a workflow, for example, based on a workflowdescription document (WDD).

The media source (111) can provide media content (e.g., media data,supplementary information) to be processed by a workflow. Thesupplementary information can include metadata or auxiliary informationrelated to the media data. The media source (111) can provide an inputto the workflow. The media sink (115) can consume an output of theworkflow. The MPE (113) can run one or more media processing task(s) toprocess the media content.

Different entities (e.g., the NBMP Source (101), the workflow manager(103) and the MPE (113)) in the NBMP system (100) can use APIs to invokeand respond to media service requests as shown in FIG. 1. The APIs caninclude an NBMP workflow API (or a workflow API), a function discoveryAPI, and a task API. The workflow API can provide an interface betweenthe NBMP Source (101) and the workflow manager (103). The task API canprovide an interface between the workflow manager (103) and mediaprocessing tasks. The function discovery API can provide an interfacebetween the workflow manager (103)/the NBMP Source (101) and theFunction Repository (105).

The NBMP interfaces described above can be used to create and controlmedia processing workflows in the network. The NBMP system (100) can besplit into a control plane and a media plane (or media data plane). Thecontrol plane can include the workflow API, the function discovery API,and the task API.

The workflow API can be used by the NBMP source (101) to create andcontrol a media processing workflow. The NBMP Source (101) can use theworkflow API to communicate with the workflow manager (103) forconfiguring and controlling media processing in the network. When theNBMP Source (101) sends a request to the workflow manager (103) byincluding a workflow resource (WR) in an operation of the workflow API,the workflow manager (103) can parse the WR, the included WDD andcorresponding descriptors, and take the appropriate actions according tothe requested operation. Then, the workflow manager (103) canacknowledge the request with a response. The workflow API operations caninclude creating a workflow (e.g., CreateWorkflow), updating a workflow(e.g., UpdateWorkflow), deleting a workflow (e.g., DeleteWorkflow),retrieving a workflow (e.g., RetrieveWorkflow), and the like.

The function discovery API can provide the means for the workflowmanager (103) and/or the NBMP Source (101) to discover media processingfunctions that can be loaded as part of a media processing workflow.

The task API can be used by the workflow manager (103) to configure andmonitor task(s) (e.g., a task 1 and a task 2 run by the MPE (113)) atruntime. The task API can define interface(s) for configuration of mediaprocessing tasks by the workflow manager (103), for example, after theresources for the task are allocated in the MPE (113). Task APIoperations can include creating a task (e.g., CreateTask), updating atask (e.g., UpdateTask), getting a task (e.g., GetTask), deleting a task(e.g., DeleteTask), and the like.

On the media plane, the media formats, the metadata, and thesupplementary information formats between the NBMP Source (111) andtask(s), as well as between the tasks can be defined.

A workflow description (WD) can be passed from the NBMP source (101) tothe workflow manager (103). The WD can describe information such asinput data and output data, functions and other requirements for theworkflow.

The workflow manager (103) can receive a WDD from the NBMP source (101)and can build a workflow for requested media processing. In a workflowprocedure, media processing functions can be selected, for example, fromthe function repository (105), and then corresponding media processingtasks can be configured and distributed to a set of one or more MPEs(e.g., including the MPE (113)).

The set of functions provided by the function repository (105) can beread by an NBMP source (101) and the workflow manager (103). In anembodiment, the NBMP source (101) requests the creation of a workflowusing a set of functions in the function repository (105). Accordingly,the NBMP source (101) is configured to select functions for theworkflow. The NBMP source (101) can request the creation of the workflowas described below. The NBMP source (101) can use a description of themedia processing tasks by which the workflow is to be created, and canspecify a connection map to define connections of inputs and outputs ofthe media processing tasks. When the workflow manager (103) receives theabove information from the NBMP source (101), the workflow manager (103)can instantiate the media processing tasks based on respective functionnames and can connect the media processing tasks according to theconnection map.

Alternatively, the NBMP source (101) can request the creation of aworkflow using a set of keywords by which the workflow manager (103) canconstruct the workflow. Accordingly, the NBMP source (101) may not beaware of a set of functions to be inserted into the workflow. The NBMPsource (101) can request the creation of the workflow as describedbelow. The NBMP source (101) can use the set of keywords by which theworkflow manager (103) can find the appropriate functions, and canspecify the requirements of the workflow using suitable workflowdescription.

When the workflow manager (103) receives the above information (e.g.,the set of keywords) from the NBMP source (101), the workflow manager(103) can create the workflow by searching for appropriate functionsusing the keywords, for example, specified in a processing descriptor.The workflow manager (103) can then use other descriptors in theworkflow description to provision the media processing tasks and connectthe media processing tasks to create the final workflow.

A processing model of the workflow manager (103) can be described asbelow.

The workflow manager (103) can discover available media processingfunctions as below. The NBMP function repository (105) can provide thefunction discovery interface (or API) to allow external entities toquery for a media processing function that can fulfill the requestedprocessing. The workflow manager (103) can have access to a directoryservice that offers a searchable list of media processing functions. Theworkflow manager (103) can use the description of the media processingtasks in the workflow description to find the appropriate functions forthe workflow.

Selection of the media processing tasks for the workflow can bedescribed below. When a request for media processing is received fromthe NBMP source (101), the workflow manager (103) can search thefunction repository (105) to find the list of all available functionsthat can fulfill the workflow. Using the workflow description from theNBMP Source (101), the workflow manager (103) can find the functionsfrom the function repository (105) to implement the workflow, which candepend on the information for media processing from the NBMP Source(101). The information for media processing can include the input andoutput description, the description of the requested processing, and theinformation in other descriptors for functions in the function directory(105). Mapping of the source requests to appropriate media processingtasks to be included in the workflow can be a part of the implementationof the NBMP in the network. To reference and link input sources withinput port names and output port names at the time of task creation, theinput-ports and output-ports can be used to make references to the inputstreams.

A search for appropriate functions to be instantiated as tasks can beperformed by the workflow manager (103) using a function discovery API.Alternatively, the workflow manager (103) can retrieve detailedinformation of some or all suitable functions in the function repository(105) using the function discovery API. The workflow manager (103) canthen compare the information for media processing from the NBMP source(101) with different descriptors of each function.

Selected media processing tasks can be configured in the workflow. Whenthe functions to be included in the workflow are identified, the NBMPworkflow manager (103) can instantiate the functions as respective tasksand configure the tasks so that the tasks can be added to the workflow.The NBMP workflow manager (103) can extract the configuration data fromthe media processing information received from the NBMP source (101) andconfigure the corresponding tasks. The configuration of the Tasks can beperformed using a task API (e.g., NBMP task API).

Task allocation and distribution can be described below. The workflowmanager (103) can use the workflow to perform processing deployment andconfigure the media processing entities. In an example, forcomputationally intensive media processing requests, the workflowmanager (103) can set up multiple computational instances and distributea workload among the multiple computational instances. Thus, theworkflow manager (103) can connect and configure the multiplecomputational instances as needed. In an example, the workflow manager(103) allocates a same task to multiple instances and provisions a loadbalancer to distribute the workload among the multiple instances using achosen scheduling mechanism. In an alternative example, the workflowmanager (103) allocates different operations of the same task todifferent instances (e.g., parallel operations). In both examplesdescribed above, the workflow manager (103) can set up the workflowpaths between the instances, and thus the suitable workload can besuccessfully realized. The workflow manager (103) can configure thetasks to push the processed media data/streams (or make them availablethrough a pull mechanism) to a next task in the workflow graph.

When the workflow manager (103) receives a WDD from the NBMP Source(101), the workflow manager (103) can perform a selection of mediaprocessing functions to be inserted into the workflow. When the list oftasks to be included in the workflow is compiled, the workflow manager(103) can then connect the tasks to prepare the workflow.

The workflow manager (103) can generate a workflow, for example, asrepresented by a graph (e.g., a DAG). FIG. 2 shows an example of a graph(e.g., a DAG) (200) according to an embodiment of the disclosure. TheDAG (200) can include a plurality of nodes (T1)-(T6) and a plurality oflinks (or connections) (202)-(208). In an example, the DAG (200)represents the workflow (200).

Each node of the DAG (200) can represent a media processing task in theworkflow (200). A link (e.g., the link (202)) connecting a first node(e.g., the node (T1)) to a second node (e.g., the node (T2)) in the DAG(200A) can represent a transfer of an output of the first node (e.g.,the node (T1)) as an input to the second node (e.g., the node (T2)).

In general, a workflow can include any suitable number of input(s) (orworkflow input(s)) and any suitable number of output(s) (or workflowoutput(s)). The workflow input(s) can be connected to the media source(111), other workflow(s), and/or the like, and the workflow output(s)can be connected to the media sink (115), other workflow(s), and/or thelike. The workflow (200) has an input (201) and outputs (209) and (210).The workflow (200) can have one or more outputs from intermediate nodesin some embodiments.

II. NBMP Descriptions, Data Objects and REST Resources

To describe NBMP, in some example, parameters, descriptors, anddescriptions can be defined. For example, a workflow description, a taskdescription, and a function description can be defined to describe aworkflow, a task, and a function, respectively. Each of the workflowdescription, the task description, and the function description can bedescribed using a set of descriptors. Each descriptor can provide a setof parameters to describe a set of characteristics of the respectivefunction, task, or function.

There is a one-to-one relationship between a logical description and thecorresponding data object and between data document and REST resource insome examples. For example, a workflow object (WO), task object (TO) andfunction object (FO) are realization of the corresponding descriptions(or descriptors), for example, as javascript object notation (JSON)objects. A workflow description document (WDD), task descriptiondocument (TDD), and function description document (FDD) are documentscontaining single WO, single TO and single FO, respectively. Thesedocuments can be JSON objects. A workflow resource (WR), task resource(TR) and function resource (FR) are WDD, TDD, and FDD with valid URLs,respectively, and therefore REST resources.

II.1 NBMP Function Description and Configuration Descriptor

In an embodiment, a media processing function in the function repository(105) can be described using a set of descriptors that form a functiondescription. As an example, Table 1 below shows a set of descriptors ofa media processing function.

TABLE 1 Descriptor Additional constraints Cardinality Scheme None 0-1General Following parameters 1 shall not be present: priority Theparameter id shall be a valid URI according to ETF RFC 3986. InputFollowing parameters 1 shall not be present: stream-id. Output Followingparameters 1 shall not be present: stream-id. Processing If the Functionis a 0-1 Function Group, this descriptor shall contain a connection-mapobject. Following parameters shall not be present: start-time.Requirements In Function Description, 0-1 only maximum or minimum valuesshould be specified. Configuration None 0-1 Client-Assistance Followingparameters 0-1 shall not be present: Measurement-collection-list.Source-assistance-information. Assertion None 0-1 Variables None 0-1Events None 0-1 Security None 0-1

Each descriptor of the media processing function can provide a group ofparameters which describe a set of related characteristics of therespective media processing function. For example, the generaldescriptor in Table 1 can provide general details about the respectivefunction. Table 2 shows a group of parameters corresponding to thegeneral descriptor in Table 1.

TABLE 2 Parameter Name Type Cardinality id P 1 name P 1 description P 1rank P 0-1 mpeg-compatibility P 0-1 published-time P 0-1 priority P 0-1execution-time P 0-1 input-ports Array of object 1 output-ports Array ofobject 1 is-group P 0-1 state P 1

The configuration descriptor in Table 1 can provide configurationinformation for the respective media processing function. As an example,Table 3 shows parameters corresponding to the function descriptor inTable 1.

TABLE 3 Parameter Name Description Data Type Cardinality parametersConfiguration details of Array of 1 parameters required object forresource.

As an example, Table 4 shows a JSON schema for creating a JSON object ofthe configuration descriptor.

TABLE 4 {  “title”: “Configuration Descriptor Schema”,  “type”:“object”,  “required”: [ “parameters” ],  “properties”: {  “parameters”: {    “type”: “array”,    “uniqueItems”: true,   “items”: {     “type”; “object”,     “required”: [      “name”, “id”,“type”     ],     “properties”: {      “name”: {       “type”: “string”     },      “id”: {       “type”: “integer”      },      “type”: {      “type”: “string”,       “enum”: [        “simple”, “enum”,“range”, “class”       ]      },      “datatype”: {       “type”:“string”,       “enum”: [        “boolean”, “integer”,“unsigned-integer”, “float”, “string”, “object”, “other”       ]      },     “default”: {       “type”: “object”      },      “restrictions”: {      “type”: “object”,       “properties”: {        “enum-values”: {        “type”: “array”,         “uniqueItems”: true,         “items”: {         “type”: “string”         }        },        “int-range”: {        “type”: “object”,         “properties”; {          “min-value”:{           “type”: “integer”          },          “max-value”: {          “type”: “integer”          },          “increment”: {          “type”: “integer”          }         }        },       “float-range”: {         “type”: “object”,         “properties”:{          “min-value”: {           “type”: “number”          },         “max-value”: {           “type”: “number”          },         “increment”: {           “type”: “number”          }         }       }       }      },      “conditions”: {       “type”: “array”,      “uniqueItems”: true.       “description”: “List of configurarionids”,       “items”: {        “type”: “integer”       }      },     “exclusion”: {       “type”: “array”,       “description”: “List ofconfigurarion ids”,       “uniqueItems”: true,       “items”: {       “type”: “integer”       }      }     }    }   }  } }

III. Graph Representation and Data Object of Configuration Parameters ofa Media Processing Function

III.1 Parameter Graph

In some examples, a parameter set for configuring a media processingfunction can be represented as a parameter graph (or referred to as aparameter representation graph). The parameter set can includeparameters in a descriptor of a function description of the mediaprocessing function. Logical relationships (e.g., dependencies orexclusions) among the parameters can be described using the parametergraph.

Aspects of the disclosure describe rules for constructing the parametergraph. Compared with prior art, the parameter graph can be constructedin a simplified way by using the construction rules described herein. Adata object (e.g., JSON object) of the configuration descriptorgenerated based on the parameter graph can also be simplified and have amore compact format. Parsing operations over such a data object can alsobe simplified. The rules can be used for constructing a parameter graphfor configuration parameters of a configuration descriptor in a functiondescription in NBMP, or used for constructing parameter graphs for anyother configuration parameters of a function not related with NBMP.

As an example, a set of rules for constructing a parameter graph can bedescribed as follows.

A parameter graph can include nodes and edges. An edge is a connectionbetween two nodes and represents a logical relationship between the twonodes. Any two nodes must be connected to each other with at most oneedge.

There can be two types of nodes: parameter nodes and value nodes. Aparameter must be represented by a parameter node in the parametergraph. If a presence of a value, a subset or a subrange of a parameter'svalue (in a dependency relationship) or an absence of the parameter'svalue (in an exclusion relationship) is required as a condition forsetting another parameter, that value or subset or subrange must berepresented by a value node in the parameter graph.

There can be three types of edges defined in the parameter graph:

-   -   P2V: connection from a parameter node to a value node indicating        that the parameter of the parameter node may take a subset or        subrange of its allowed values represented by the value node.    -   V2P: connection from a value node to a parameter node indicating        a dependency of the parameter represented by the parameter node        to the parent parameter taking those specific values represented        by the value node.    -   V0P: connection from a value node to a parameter node indicating        that the parameter represented by the parameter node is not        allowed (e.g., not used) if the parent parameter is set to the        value represented by the value node.

A parameter node may be connected from no other node, or one or morevalue nodes. Exactly one edge must be connected to any value node, andthat edge must be from a single parameter node. Any edge connected to aparameter node must be one of the V2P or V0P type.

A parameter graph constructed by using the above rules can berepresented by a data object, such as a JSON object. The logicalrelationships among the parameters in the constructed parameter graphcan be described by this data object.

FIG. 3 shows an example of a parameter graph (300) complying with therules described above. In the parameter graph (300), circular nodesrepresent parameter nodes P1-P6 corresponding to parameters P1-P6.Square nodes represent value nodes V11, V12, V21, V31, and V32corresponding to values (e.g., a value, a subset of allowable values, asubrange of allowable values). Edges (301), (302), (303), (311), (312),(313), (321), (323), (331), and (323) connect the parameter nodes andthe value nodes as shown in FIG. 3. Three types of edges, P2V, V2P, andV0P, are represented by a solid line arrow, a dotted line arrow, and adashed line arrow, respectively. In addition, parameter node P1 is aparent node of parameter node P3 or P4. Parameter node P3 is a parentnode of parameter node P5 or P6.

As shown, the parameter graph (300) can have a hierarchical structureincluding 5 levels. For example, the first level can include nodes P1and P2. The second level can include nodes V11, V12, and V21. The thirdlevel can include nodes P3 and P4. The fourth level can include nodesV31, and V32. The last level can include nodes P5 and P6.

Parameter node P1 has two value nodes V11 and V12 connected by P2V edges(301) and (302). If parameter P1 is set to values indicated by V11, theP3 parameter can be set as indicated by the V2P edge (311), and theparameter P4 is not allowed. If parameter P1 is set to values indicatedby V12, parameter P4 can be set as indicated by the V2P edge (312), andthe parameter P3 is not used.

If parameter P3 is set to values represented by V31 as indicated by theP2V edge (321), then parameter P5 can be set as indicated by the V2Pedge (331). If parameter P3 is not set to values represented by V32(e.g., can be set to values represented by V31 or any other valid valueoutside of V32) and if P2 is set to values represented by V21, then P6can be set, which is indicated by the V0P edge (333) and the V2P edge(313). If parameter P3 is set to values represented by V32 or if P2 isnot set to values represented by V21, then P6 is not allowed, which isalso indicated by the V0P edge (333) and the V2P edge (313). The valuesindicated by V21 may not be the only values parameter P2 may be set to.

In some examples, the parameter graph representation can be used by atask of a workflow to select or verify a subset of configurationparameters of a respective media processing function instantiated as thetask.

In an example, the workflow manager (103) can query the functionrepository (105) to receive a function description of a media processingfunction. The function description can include a configurationdescriptor describing a set of configuration parameters of the mediaprocessing function. The workflow manager (103) can instantiate themedia processing function as a task. The workflow manager (103) canfurther configure the task by passing the configuration descriptor tothe task. By parsing the configuration descriptor (e.g., a JSON object),the task can accordingly construct a parameter graph. When in runningstate, the task can select and verify a subset of the configurationparameters based on initial parameter values provided by the mediasource (111) in an example.

An example process of selection and verification of a subset ofconfiguration parameters based on a parameter graph is described asfollows. The process can include the following steps:

-   -   1) Set i to value 1, representing level 1 of the parameter        graph.    -   2) For parameters of level i, select a subset Si of these        parameters to be included in the configuration.    -   3) For each selected parameter Pi:j, determine the set of values        Vi:k that can be assigned to Pi:j (allowable values).    -   4) Assign appropriate Value for Pi:j out of the possible values        Vi:k.    -   5) Based on assigned values for each parameter Pi:j, determine        subset Si+1 of parameters Pi+1:m with edges of type 2        (dependency relationship) and exclude parameters with edges of        type 3 from the graph (exclusion relationship).    -   6) Set i=i+1 and if the new subset Si is not empty, go to step        2.    -   7) If Si is empty, verify that the graph has no nodes of type 3        (exclusion) and return the created configuration.

III. 2 Data Object Format

A data object, such as a JSON object, can be created for a configurationdescriptor in a function description based on a parameter representationgraph of configuration parameters described by the configurationdescriptor. For example, a JSON scheme can be specified to reflectparameter logical relationships described using parameter graphcompliant to the rules described in Section III.1. A JSON object of aconfiguration descriptor can be created according to the specified JSONscheme to reflect parameter logical relationships of configurationparameters described by the configuration descriptor. The JSON schemeshown in Table 4 is an example that is specified based on a parametergraph compliant to the rules described in Section III.1.

Table 5 shows another example JSON scheme that is specified based on aparameter graph compliant to the rules described in Section III.1

TABLE 5 JSON Scheme for JSON Object of Configuration ROW # Descriptor  1“parameters”: {  2  “type”: “array”,  3  “items”: {  4   “type”:“object”,  5   “required”: [  6    “name”, “id”, “type”  7   ],  8  “properties”: {  9    “name”: { 10     “type”: “string” 11    }, 12   “id”: { 13     “type”: “integer” 14    }, 15    “type”: { 16    “type”: “string”, 17     “enum”: [ 18      “simple”, “enum”,“range”, “class” 19     ] 20    }, 21    “datatype”: { 22     “type”:“string”, 23     “enum”: [ 24      “boolean”, “interger”, “unsigned- 25integer”, “float”, “string”, “object”, “other” 26     ] 27    }, 28   “default”: { 29      “type”: “object” 30    }, 31    “restrictions”:{ 32     “type”: “object”, 33     “properties”: { 34      “enum-values”:{ 35       “type”: “array” 36      }, 37      “int-range”: { 38      “type”: “object”. 39       “properties”: { 48        “min-value”:{ 41         “type”: “integer” 42        }, 43        “max-value”: { 44        “type”: “integer” 45        } 46        “increment”: { 47         “type”: “integer” 48        } 49       } 50      }, 51     “float-range”: { 52        “type”: “object”, 53       “properties”: { 54         “min-value”: { 55          “type”:“float” 56         }, 57         “max-value”: { 58          “type”:“float” 59         }, 60         “increment”: { 61          “type”:“float” 62         } 63        } 64       } 65     } 66    }, 67   “conditions”: { 68     “type”: “array”, 69     “items”: “integer” 70   }, 71    “exclusion”: { 72      “type”: “array”, 73      “items”:“integer” 74    } 75   } 76  } 77 }

Table 6 shows an example JSON object created according to the JSONscheme in Table 5. The JSON object in Table 6 corresponds to theparameter graph (300) in FIG. 3. Creation of the JSON object in Table 6is based on the parameter logical relationships indicated by theparameter graph (300).

TABLE 6 Row # JSON Object  1 “parameters”: [  2  {“name”: “p1”, “id”:“1”, “type”: “simple”, “datatype”: “unsigned-  3 integer”},  4  {“name”:“p2”, “id”: “2”, “type”: “simple”, “datatype”: “integer”},  5  {“name”:“v11”, “id”: “11”, “type”: “range”,  6   “restrictions”: {  7   “int-range”: {“min-value”: “0”, “max-value”: “10”}  8   },  9  “conditions”: [“1”] 10  }, 11  {“name”: “v12”, “id”: “12”, “type”:“range”, 12   “restrictions”: { 13    “int-range”: {“min-value”: “11”}14   }, 15   “conditions”: [“1”] 16  }, 17  {“name”: “v21”, “id”: “21”,“type”: “range”, 18   “restrictions”: { 19    “int-range”: {“min-value”:“0”} 20   }, 21   “conditions”: [“2”] 22  }, 23  {“name”: “p3”, “id”:“3”, “type”: “enum”, 24   “restrictions”: { 25    “enum-values”:[“linear”, “exponential”] 26   }, 27   “conditions”: [“11”] 28  }, 29 {“name”: “p4”, “id”: “4”, “type”: “simple”, “datatype”: “float”, 30  “conditions”: [“12”] 31  }, 32  {“name”: “v31”, “id”: “31”, “type”:“enum”, 33   “restrictions”: { 34    “enum-values”: [“linear”] 35   },36   “conditions”: [“3”] 37  }, 38  {“name”: “v32”, “id”: “32”, “type”:“enum”, 39   “restrictions”: { 40    “enum-values”: [“exponential”] 41  }, 42   “conditions”: [“3”] 43  }, 44  {“name”: “p5”, “id”: “5”,“type”: “simple”, “datatype”: “float”, 45   “conditions”: [“v31”] 46  },47  {“name”: “p6”, “id”: “6”, “type”: “simple”, “datatype”: “double”, 48  “conditions”: [“32”], 49   “exclusion”: [“21”] 50  }, 51 ]

According to the disclosure, because the introduction of the rules forconstructing parameter graphs as describe in Section III.1, a parametergraph of a configuration descriptor can be constructed in a simplifiedway. A JSON object based on the parameter graph can be more compact.Parsing of such a JSON object and, accordingly, reconstruction of aparameter graph become easier.

In addition, a datatype can be assigned to each object of parameternodes in a JSON object. In this way, a receiver of the JSON object canuse right datatypes for various parameters correctly. For example, rows21-27 in Table 5 specify the datatype parameter. Rows 2, 4, 29, 44, and47 in Table 6 describe a datatype, respectively.

Further, as shown in Table 5 and Table 6, V2P and V02 edges can besignaled using two separate lists for each parameter node, which cansimplify the JSON representation significantly. For example, the JSONscheme in Table 5 specifies a conditions object at rows 67-70, and anexclusion object at rows 71-74. The conditions object can provide a listof parameter nodes (e.g., each connected by a V2P edge) which aparameter node depends on. The exclusion object can provide a list ofparameter nodes (e.g., each connected by a V0P edge) with each of whicha parameter node has an exclusion relationship.

Accordingly, in Table 6, rows 48 and 49 together provide an examplewhere a first list (including value node ID 32) of a conditions objectis provided to indicate the V2P edge (333), while a second list(including value node ID 21) of an exclusion object is provided toindicate the V0P edge (313). Using the node IDs, instead of complexarray of objects (as in prior art), to represent value nodes cansimplify the JSON representation significantly.

Furthermore, the same edge signaling is used for bother parameter nodesand value nodes, which simplify the JSON object. As shown in Table 6,both the parameter nodes and the value nodes use the conditions objectto indicate a list of parameter or value nodes which a current node isrelated with.

Finally, a compact format of 3 values (a start value, an end value, andan increment) is used to represent values of a value node. The 3 valuescan be either integer values or floating point values. As shown in rows37-64 in Table 5, objects of min-value, max-value, and increment arespecified for representing an int-range or a float-range object.

IV. Example Media Processing Processes

FIG. 4 shows an example NBMP process (400) according to an embodiment ofthe disclosure. In the process, a configuration descriptor in a functiondescription employs configuration parameter graph representationtechniques described herein. In one example, the process 400 can beperformed by the NBMP workflow manager (103) in the FIG. 1 example. Theprocess (400) can start from (S401), and proceed to (S410).

At (S410), a function description of a media processing function can bereceived from a function repository at a workflow manager in an NBMPsystem. For example, the workflow manager may receive a workflowdescription from an NBMP source. The workflow description may indicatethe media processing function used for a media processing workflow. Insuch a scenario, the workflow manager may obtain the functiondescription corresponding to the indicated media processing functionfrom the function repository.

Alternatively, the workflow description may not specify the mediaprocessing function but provides one or more keywords. In this scenario,the workflow manager can query the function repository using thekeywords to obtain function descriptions of a set of functions. Theworkflow manager may select one or more media processing functions fromthe set of functions to design a workflow. A media processing functionselected this way can include the function description received at(S410).

The function description received at (S410) can include a configurationdescriptor providing configuration information of configurationparameters for the respective media processing function. Theconfiguration descriptor can be a JSON object created according to aparameter representation graph. The parameters of the configurationdescriptor in the JSON object can have logical relationships representedby the parameter representation graph.

Particularly, the parameter representation graph can be constructedaccording to a set of rules as described in Section III.1. For example,the rules for constructing the parameter representation graph caninclude:

-   -   (a) the parameter representation graph includes nodes and edges        each connecting two nodes and representing a logical        relationship between two respective nodes, the nodes including        parameter nodes and value nodes;    -   (b) any two nodes are connected to each other with at most one        edge;    -   (c) a parameter is represented by a parameter node in the        parameter representation graph;    -   (d) if presence or absence of a parameter's value is required as        a condition for setting another parameter, the parameter's value        is represented by a value node in the parameter representation        graph;    -   (e) a parameter node is connected from no other node, or one or        more value nodes; and    -   (f) one edge is connected to any value node and from a single        parameter node.

In one example, the rules can further include:

-   -   (g) the edges in the parameter representation graph are        categorized into three types defined as follows:        -   (i) P2V: a first connection from a parameter node to a value            node indicating that the parameter of the parameter node            connected to the first connection takes a subset or a range            of allowed values represented by the value node connected to            the first connection,        -   (ii) V2P: a second connection from a value node to a            parameter node indicating a dependency of the parameter            represented by the parameter node connected to the second            connection to a parent parameter taking a value represented            by the value node connected to the second connection, and        -   (iii) V0P: a third connection from a value node to a            parameter node indicating that the parameter represented by            the parameter node connected to the third connection is not            allowed if a parent parameter is set to a value represented            by the value node connected to the third connection; and    -   (h) any edge connected to a parameter node is of the type of V2P        or V0P.

At (S420), the media processing function can be instantiated as a mediaprocessing task that is part of a workflow and runs in a mediaprocessing entity. For example, the workflow can be described by theworkflow description received from the NBMP source or can be designed bythe workflow manager. The workflow manage man communicate with aresource manager of a cloud computing platform to provision one or moremedia processing entities, and load a set of functions of the workflowto the media processing entities. During this process, the mediaprocessing function can be instantiated as the media processing task aspart of the workflow.

At (S430), the media processing task can be configured based on theconfiguration information of the parameters in the configurationdescriptor. For example, after the tasks start to run in the mediaprocessing entities, the workflow manager may configure the tasks sothat the tasks can connect with each other according to a connection mapin the respective workflow description. For example, configurations bythe workflow manager can include providing information of input-portsand output-ports of each task described in the respective workflowdescription to each task so that media data can be passed through thosetasks properly. The configurations by the workflow manager can alsoinclude passing the function descriptor (e.g., the JSON object) receivedat (S410) to the respective task so that the task can determine andverify a subset of the parameters based on the JSON object.

For example, the task can first reconstruct a parameter graph based onthe JSON object passed to it. Then, based on the parameter graph, thetask can perform the process of selection and verification described inSection III.1 to determine the subset of the parameters of theconfiguration descriptor received at (S410).

After the tasks are configured and the workflow is instantiated, mediadata can start to be received from a media source and processed usingthe workflow. The process (400) can proceed to (S499) and terminate at(S499).

V. Computer System

The methods, embodiments, entities, or functions disclosed herein may beimplemented by processing circuitry (e.g., one or more processors or oneor more integrated circuits). In one example, the one or more processorsexecute a program that is stored in a non-transitory computer-readablemedium to perform the methods, embodiments, or functions disclosedherein. The program can be coded using any suitable machine code orcomputer language, that may be subject to assembly, compilation,linking, or like mechanisms to create code comprising instructions thatcan be executed directly, or through interpretation, micro-codeexecution, and the like, by one or more CPUs, GPUs, and the like. Theinstructions can be executed on various types of computers or componentsthereof, including, for example, personal computers, tablet computers,servers, smartphones, gaming devices, internet of things devices, andthe like.

FIG. 5 shows a computer system (500) suitable for implementing certainembodiments of the disclosed subject matter. The components shown inFIG. 5 for computer system (500) are exemplary in nature and are notintended to suggest any limitation as to the scope of use orfunctionality of the computer software implementing embodiments of thepresent disclosure. Neither should the configuration of components beinterpreted as having any dependency or requirement relating to any oneor combination of components illustrated in the exemplary embodiment ofa computer system (500).

Computer system (500) may include certain human interface input devices.Such a human interface input device may be responsive to input by one ormore human users through, for example, tactile input (such as:keystrokes, swipes, data glove movements), audio input (such as: voice,clapping), visual input (such as: gestures), olfactory input (notdepicted). The human interface devices can also be used to capturecertain media not necessarily directly related to conscious input by ahuman, such as audio (such as: speech, music, ambient sound), images(such as: scanned images, photographic images obtain from a still imagecamera), video (such as two-dimensional video, three-dimensional videoincluding stereoscopic video).

Input human interface devices may include one or more of (only one ofeach depicted): keyboard (501), mouse (502), trackpad (503), touchscreen (510), data-glove (not shown), joystick (505), microphone (506),scanner (507), camera (508).

Computer system (500) may also include certain human interface outputdevices. Such human interface output devices may be stimulating thesenses of one or more human users through, for example, tactile output,sound, light, and smell/taste. Such human interface output devices mayinclude tactile output devices (for example tactile feedback by thetouch-screen (510), data-glove (not shown), or joystick (505), but therecan also be tactile feedback devices that do not serve as inputdevices), audio output devices (such as: speakers (509), headphones (notdepicted)), visual output devices (such as screens (510) to include CRTscreens, LCD screens, plasma screens, OLED screens, each with or withouttouch-screen input capability, each with or without tactile feedbackcapability—some of which may be capable to output two dimensional visualoutput or more than three dimensional output through means such asstereographic output; virtual-reality glasses (not depicted),holographic displays and smoke tanks (not depicted)), and printers (notdepicted).

Computer system (500) can also include human accessible storage devicesand their associated media such as optical media including CD/DVD ROM/RW(520) with CD/DVD or the like media (521), thumb-drive (522), removablehard drive or solid state drive (523), legacy magnetic media such astape and floppy disc (not depicted), specialized ROM/ASIC/PLD baseddevices such as security dongles (not depicted), and the like.

Those skilled in the art should also understand that term “computerreadable media” as used in connection with the presently disclosedsubject matter does not encompass transmission media, carrier waves, orother transitory signals.

Computer system (500) can also include an interface (554) to one or morecommunication networks (555). Networks can for example be wireless,wireline, optical. Networks can further be local, wide-area,metropolitan, vehicular and industrial, real-time, delay-tolerant, andso on. Examples of networks include local area networks such asEthernet, wireless LANs, cellular networks to include GSM, 3G, 4G, 5G,LTE and the like, TV wireline or wireless wide area digital networks toinclude cable TV, satellite TV, and terrestrial broadcast TV, vehicularand industrial to include CANBus, and so forth. Certain networkscommonly require external network interface adaptors that attached tocertain general purpose data ports or peripheral buses (549) (such as,for example USB ports of the computer system (500)); others are commonlyintegrated into the core of the computer system (500) by attachment to asystem bus as described below (for example Ethernet interface into a PCcomputer system or cellular network interface into a smartphone computersystem). Using any of these networks, computer system (500) cancommunicate with other entities. Such communication can beuni-directional, receive only (for example, broadcast TV),uni-directional send-only (for example CANbus to certain CANbusdevices), or bi-directional, for example to other computer systems usinglocal or wide area digital networks. Certain protocols and protocolstacks can be used on each of those networks and network interfaces asdescribed herein.

Aforementioned human interface devices, human-accessible storagedevices, and network interfaces can be attached to a core (540) of thecomputer system (500).

The core (540) can include one or more Central Processing Units (CPU)(541), Graphics Processing Units (GPU) (542), specialized programmableprocessing units in the form of Field Programmable Gate Areas (FPGA)(543), hardware accelerators (544) for certain tasks, graphics adapters(550), and so forth. These devices, along with Read-only memory (ROM)(545), Random-access memory (546), internal mass storage such asinternal non-user accessible hard drives, SSDs, and the like (547), maybe connected through a system bus (548). In some computer systems, thesystem bus (548) can be accessible in the form of one or more physicalplugs to enable extensions by additional CPUs, GPU, and the like. Theperipheral devices can be attached either directly to the core's systembus (548), or through a peripheral bus (549). In an example, the screen(510) can be connected to the graphics adapter (550). Architectures fora peripheral bus include PCI, USB, and the like.

CPUs (541), GPUs (542), FPGAs (543), and accelerators (544) can executecertain instructions that, in combination, can make up theaforementioned computer code. That computer code can be stored in ROM(545) or RAM (546). Transitional data can be also be stored in RAM(546), whereas permanent data can be stored for example, in the internalmass storage (547). Fast storage and retrieve to any of the memorydevices can be enabled through the use of cache memory, that can beclosely associated with one or more CPU (541), GPU (542), mass storage(547), ROM (545), RAM (546), and the like.

The computer readable media can have computer code thereon forperforming various computer-implemented operations. The media andcomputer code can be those specially designed and constructed for thepurposes of the present disclosure, or they can be of the kind wellknown and available to those having skill in the computer software arts.

As an example and not by way of limitation, the computer system havingarchitecture (500), and specifically the core (540) can providefunctionality as a result of processor(s) (including CPUs, GPUs, FPGA,accelerators, and the like) executing software embodied in one or moretangible, computer-readable media. Such computer-readable media can bemedia associated with user-accessible mass storage as introduced above,as well as certain storage of the core (540) that are of non-transitorynature, such as core-internal mass storage (547) or ROM (545). Thesoftware implementing various embodiments of the present disclosure canbe stored in such devices and executed by core (540). Acomputer-readable medium can include one or more memory devices orchips, according to particular needs. The software can cause the core(540) and specifically the processors therein (including CPU, GPU, FPGA,and the like) to execute particular processes or particular parts ofparticular processes described above, including defining data structuresstored in RAM (546) and modifying such data structures according to theprocesses defined by the software. In addition or as an alternative, thecomputer system can provide functionality as a result of logic hardwiredor otherwise embodied in a circuit (for example: accelerator (544)),which can operate in place of or together with software to executeparticular processes or particular parts of particular processesdescribed herein. Reference to software can encompass logic, and viceversa, where appropriate. Reference to a computer-readable media canencompass a circuit (such as an integrated circuit (IC)) storingsoftware for execution, a circuit embodying logic for execution, orboth, where appropriate. The present disclosure encompasses any suitablecombination of hardware and software.

While this disclosure has described several exemplary embodiments, thereare alterations, permutations, and various substitute equivalents, whichfall within the scope of the disclosure. It will thus be appreciatedthat those skilled in the art will be able to devise numerous systemsand methods which, although not explicitly shown or described herein,embody the principles of the disclosure and are thus within the spiritand scope thereof.

What is claimed is:
 1. A method of network-based media processing(NBMP), comprising: receiving at a function repository in an NBMPsystem, a query from one of an NBMP workflow manager or an NBMP source,the query indicating a media processing function or a keyword based onwhich the media processing function is determined by the functionrepository; and in response to the query, providing, by the functionrepository, to the one of the NBMP workflow manager or the NBMP source,a function description of the media processing function in the NBMPsystem, the function description including a configuration descriptor,the configuration descriptor providing configuration information ofparameters for the media processing function based on a parameterrepresentation graph that is constructed according to a set of rulesthat includes: (a) the parameter representation graph includes nodes andedges each connecting two nodes and representing a logical relationshipbetween two respective nodes, the nodes including parameter nodes andvalue nodes, (b) any two nodes are connected to each other with at mostone edge, (c) a parameter is represented by a parameter node in theparameter representation graph, (d) when presence of a first value of afirst parameter is required as a condition for setting a secondparameter, the first value of the first parameter is represented by avalue node in the parameter representation graph, and when absence ofthe first value of the first parameter is required as the condition forsetting the second parameter, the first value of the first parameter isrepresented by the value node in the parameter representation graph, andan edge from the value node of the first value of the first parameter toa parameter node of the second parameter indicates that the secondparameter is not allowed when the first parameter is set to the firstvalue of the first parameter, (e) a parameter node is connected from noother node, or one or more value nodes, and (f) one edge is connected toany value node and from a single parameter node.
 2. The method of claim1, wherein the parameter representation graph corresponding to theconfiguration descriptor complies with the rules that further include:(g) the edges in the parameter representation graph are categorized intothree types defined as follows: (i) P2V: a first connection from aparameter node to a value node indicating that the parameter of theparameter node connected to the first connection takes a subset or arange of allowed values represented by the value node connected to thefirst connection, (ii) V2P: a second connection from a value node to aparameter node indicating a dependency of the parameter represented bythe parameter node connected to the second connection to a parentparameter taking a value represented by the value node connected to thesecond connection, and (iii) V0P: a third connection from a value nodeto a parameter node indicating that the parameter represented by theparameter node connected to the third connection is not allowed based ona parent parameter being set to a value represented by the value nodeconnected to the third connection; and (h) any edge connected to aparameter node is of the type of V2P or V0P.
 3. The method of claim 2,wherein each of the parameters has a data type indicated in theconfiguration descriptor.
 4. The method of claim 2, wherein each of theparameters has a value that is a set of values or a range of values. 5.The method of claim 2, wherein the edges of one of the parameter nodesin the parameter representation graph are indicated by two separatelists in the configuration descriptor, the two separate listscorresponding to the V2P type and the V0P type, respectively.
 6. Themethod of claim 5, wherein identifiers (IDs) of the value nodesconnected to the respective edges indicated by the two separate lists inthe configuration descriptor are included in the two separate lists inthe configuration descriptor to indicate the respective edges of the oneof the parameter nodes.
 7. The method of claim 2, wherein one of theparameter nodes and one of the value nodes in the parameterrepresentation graph each use a list of parent node IDs to indicate theedges connected to the one of the parameter nodes and the one of thevalue nodes.
 8. The method of claim 2, wherein a set of values of one ofthe value nodes in the parameter representation graph is defined using astart value, an end value and an increment value in the configurationdescriptor.
 9. An apparatus of network-based media processing (NBMP),comprising circuitry configured to: receive a query from one of an NBMPworkflow manager or an NBMP source at a function repository in an NBMPsystem, the query indicating a media processing function or a keywordbased on which the media processing function is determined by thefunction repository; and in response to the query, provide, by thefunction repository, to the one of the NBMP workflow manager or the NBMPsource a function description of the media processing function in theNBMP system, the function description including a configurationdescriptor, the configuration descriptor providing configurationinformation of parameters for the media processing function based on aparameter representation graph that is constructed according to a set ofrules that include: (a) the parameter representation graph includesnodes and edges each connecting two nodes and representing a logicalrelationship between two respective nodes, the nodes including parameternodes and value nodes, (b) any two nodes are connected to each otherwith at most one edge, (c) a parameter is represented by a parameternode in the parameter representation graph, (d) when presence of a firstvalue of a first parameter is required as a condition for setting asecond parameter, the first value of the first parameter is representedby a value node in the parameter representation graph, and when absenceof the first value of the first parameter is required as the conditionfor setting the second parameter, the first value of the first parameteris represented by the value node in the parameter representation graph,and an edge from the value node of the first value of the firstparameter to a parameter node of the second parameter indicates that thesecond parameter is not allowed when the first parameter is set to thefirst value of the first parameter, (e) a parameter node is connectedfrom no other node, or one or more value nodes, and (f) one edge isconnected to any value node and from a single parameter node.
 10. Theapparatus of claim 9, wherein the parameter representation graphcorresponding to the configuration descriptor complies with the rulesthat further include: (g) the edges in the parameter representationgraph are categorized into three types defined as follows: (i) P2V: afirst connection from a parameter node to a value node indicating thatthe parameter of the parameter node connected to the first connectiontakes a subset or a range of allowed values represented by the valuenode connected to the first connection, (ii) V2P: a second connectionfrom a value node to a parameter node indicating a dependency of theparameter represented by the parameter node connected to the secondconnection to a parent parameter taking a value represented by the valuenode connected to the second connection, and (iii) V0P: a thirdconnection from a value node to a parameter node indicating that theparameter represented by the parameter node connected to the thirdconnection is not allowed based on a parent parameter being set to avalue represented by the value node connected to the third connection;and (h) any edge connected to a parameter node is of the type of V2P orV0P.
 11. The apparatus of claim 10, wherein each of the parameters has adata type indicated in the configuration descriptor.
 12. The apparatusof claim 10, wherein each of the parameters has a value that is a set ofvalues or a range of values.
 13. The apparatus of claim 10, wherein theedges of one of the parameter nodes in the parameter representationgraph are indicated by two separate lists in the configurationdescriptor, the two separate lists corresponding to the V2P type and theV0P type, respectively.
 14. The apparatus of claim 13, whereinidentifiers (IDs) of the value nodes connected to the respective edgesindicated by the two separate lists in the configuration descriptor areincluded in the two separate lists in the configuration descriptor toindicate the respective edges of the one of the parameter nodes.
 15. Theapparatus of claim 10, wherein one of the parameter nodes and one of thevalue nodes in the parameter representation graph each use a list ofparent node IDs to indicate the edges connected to the one of theparameter nodes and the one of the value nodes.
 16. The apparatus ofclaim 10, wherein a set of values of one of the value nodes in theparameter representation graph is defined using a start value, an endvalue and an increment value in the configuration descriptor.
 17. Anon-transitory computer-readable medium storing instructions that, whenexecuted by a processor, cause the processor to perform a method ofnetwork-based media processing (NBMP), the method comprising: receivinga query from one of an NBMP workflow manager or an NBMP source at afunction repository in an NBMP system, the query indicating a mediaprocessing function or a keyword based on which the media processingfunction is determined by the function repository; and in response tothe query, providing, by the function repository, to the one of the NBMPworkflow manager or the NBMP source a function description of the mediaprocessing function in the NBMP system, the function descriptionincluding a configuration descriptor, the configuration descriptorproviding configuration information of parameters for the mediaprocessing function based on a parameter representation graph that isconstructed according to a set of rules that include: (a) the parameterrepresentation graph includes nodes and edges each connecting two nodesand representing a logical relationship between two respective nodes,the nodes including parameter nodes and value nodes, (b) any two nodesare connected to each other with at most one edge, (c) a parameter isrepresented by a parameter node in the parameter representation graph,(d) when presence of a first value of a first parameter is required as acondition for setting a second parameter, the first value of the firstparameter is represented by a value node in the parameter representationgraph, and when absence of the first value of the first parameter isrequired as the condition for setting the second parameter, the firstvalue of the first parameter is represented by the value node in theparameter representation graph, and an edge from the value node of thefirst value of the first parameter to a parameter node of the secondparameter indicates that the second parameter is not allowed when thefirst parameter is set to the first value of the first parameter, (e) aparameter node is connected from no other node, or one or more valuenodes, and (f) one edge is connected to any value node and from a singleparameter node,
 18. The non-transitory computer-readable medium of claim17, wherein the parameter representation graph corresponding to theconfiguration descriptor complies with the rules that further include:(g) the edges in the parameter representation graph are categorized intothree types defined as follows: (i) P2V: a first connection from aparameter node to a value node indicating that the parameter of theparameter node connected to the first connection takes a subset or arange of allowed values represented by the value node connected to thefirst connection, (ii) V2P: a second connection from a value node to aparameter node indicating a dependency of the parameter represented bythe parameter node connected to the second connection to a parentparameter taking a value represented by the value node connected to thesecond connection, and (iii) V0P: a third connection from a value nodeto a parameter node indicating that the parameter represented by theparameter node connected to the third connection is not allowed based ona parent parameter being set to a value represented by the value nodeconnected to the third connection; and (h) any edge connected to aparameter node is of the type of V2P or V0P.
 19. The non-transitorycomputer-readable medium of claim 18, wherein each of the parameters hasa data type indicated in the configuration descriptor.
 20. Thenon-transitory computer-readable medium of claim 18, wherein each of theparameters has a value that is a set of values or a range of values.